package com.own.component.util.excel.util.write.method;

import com.own.component.util.excel.util.write.method.base.BaseMetaData;
import com.own.component.util.excel.util.write.record.ExcelRecord;
import lombok.NonNull;

/**
 * BaseWidthMethod
 *
 * @author chenxueli
 * @date 2022-06-15 03:14:15
 */
public interface BaseWidthMethod extends BaseMetaData {

    /**
     * 设置宽度
     *
     * @param width 宽度值
     * @return 表格对象
     */
    default ExcelRecord setWidth(@NonNull Number width) {
        var sheet = sheet();
        return setWidth(sheet.getX(), width);
    }

    /**
     * 设置宽度
     *
     * @param col   列数
     * @param width 宽度值
     * @return 表格对象
     */
    default ExcelRecord setWidth(int col, @NonNull Number width) {
        var sheet = sheet();
        sheet.getWidthMap().put(col - 1, width.intValue());
        return excel();
    }

    /**
     * 设置默认的宽度
     *
     * @param width 宽度值
     * @return 表格对象
     */
    default ExcelRecord setDefaultWidth(@NonNull Number width) {
        var sheet = sheet();
        sheet.setDefaultWidth(width.intValue());
        return excel();
    }

    /**
     * 清除默认的宽度
     *
     * @return 表格对象
     */
    default ExcelRecord clearDefaultWidth() {
        var sheet = sheet();
        sheet.setDefaultWidth(null);
        return excel();
    }

}
